/**
 * 
 *  Este arquivo é parte do programa TODO Ver nome. TODO Ver nome é um software livre; você pode redistribui-lo e/ou 
 *  modifica-lo dentro dos termos da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); 
 *  na versão 2 da Licença, ou (na sua opnião) qualquer versão.
 *  
 *	Este programa é distribuido na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implicita
 *  de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.
 *	Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa, se não, escreva para a Fundação do
 *	Software Livre(FSF) 
 *
 *	Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 * 
 */

package fullcalc.operacoes.basica.abstrata;

/**
 * 
 * <p>
 * Classe abstrata que representa operações binárias. Estende funcionalidades da
 * classe <b>{@link Operacao}</b>.
 * </p>
 * 
 * @author Marcos Oliveira Soares
 */
public abstract class AbstractOperacaoBinaria extends Operacao {
	/**
	 * <p>
	 * Construtor vazio. Utiliza construtor da classe pai {@link Operacao}
	 * </p>
	 */

	private double elementoDois;

	/** Resultado, armazena valor resultante da operação */

	public AbstractOperacaoBinaria() {
		super();
	}

	public double getElementoDois() {
		return elementoDois;
	}

	public void setElementoDois(double elementoDois) {
		this.elementoDois = elementoDois;
	}

	/**
	 * <p>
	 * Construtor com três parâmetros. Utiliza construtor da classe pai
	 * {@link Operacao}
	 * </p>
	 * 
	 * @see com.google.code.calculadora.beta.operacoes#Operacao
	 */
	public AbstractOperacaoBinaria(double numeroUm, double numeroDois,
			Double result) {
		super(numeroUm, result);
		this.elementoDois = numeroDois;
	}

	/**
	 * <p>
	 * Método abstrato utilizado pelas operações para realizar a operação
	 * binária correspondente.
	 * </p>
	 */
	public abstract void executaOperacao(double elementoUm, double elementoDois);
}